When a person (the “user”) interacts with a software application on a data processing system, the software application may cause the data processing system to display various input objects for collecting information from the user. These input objects may include text fields and other user interface (UI) objects. For instance, an email application may present a pop-up window that prompts the user for login credentials, a bookkeeping application may present a user interface for recording business expenses, or an Internet browser application may present a web page for registering with a social interaction website or a window for participating in online chat.
For purposes of this disclosure, the nouns “display” and “monitor” refer to the hardware component that a data processing system uses to present visual information to the user. The noun “screen” refers to all of the content presented on a monitor at a particular point in time. The noun “window” refers to a portion of the display used by an application to present a set of related content items together. The noun “page” refers to a set of related content items to be presented together in a single window, even though all of the items may not fit in the window at one time; and scrolling, panning, and/or zooming may be necessary to bring some parts of the page into the window. The noun “electronic form” refers to a page containing one or more input objects for collecting information from the user. Thus, for example, a data processing system may present a screen containing multiple windows. One of those windows may present a web page from a web-based email application. That page may include input objects for registering with the email application. Accordingly, that page may be referred to as an electronic form. A portion of the electronic form may be visible in the window. The user may scroll down in the window to see more of the electronic form.
Filling out electronic forms on a desktop or laptop computer with a full-sized monitor, a separate full-sized keyboard, and a mouse or other pointing device may be relatively easy. The full-sized monitor may enable the user to see most or all of the text fields and other UI objects of the electronic form. The full-sized keyboard may include a “Tab” key that allows the user to easily navigate between adjacent text fields of the electronic form. And the mouse may enable the user to interact with particular input objects on the electronic form (e.g., buttons for functions like submit, save, or send)—as long as the electronic form is small enough or the monitor screen is large enough to display those input objects along with the rest of the form.
However, in recent years, some data processing systems have been designed to operate without separate input devices such as keyboards and mice. For instance, a handheld mobile computing device (a “handheld device”) may use touchscreen technology to provide for both visual output and user input through the display screen. In particular, the handheld device may present, on its display, a collection of buttons and/or other objects (“virtual keyboard components”) that together look like a keyboard. And when the user touches virtual keyboard components that look like keys, the handheld device may respond as if the user had pressed corresponding keys on an actual keyboard. For purposes of this disclosure, the term “virtual keyboard” denotes a collection of selectable virtual keyboard components (e.g., alphanumeric buttons) displayed by a data processing system in a predetermined portion of the display screen. That portion of the display screen may be referred to as the virtual keyboard frame or window. The term “conventional keyboard,” by contrast, denotes a physical keyboard that is distinct from the display. Similarly, the term “key” refers to a part of a conventional keyboard to be depressed to provide user input, while the term “virtual key” refers to a selectable virtual keyboard component displayed as part of a virtual keyboard. As indicated above, virtual keys may also be referred to as buttons.
Typically, the operating system (OS) of a handheld device will provide a standard virtual keyboard, and applications which execute on that device may use that standard virtual keyboard by default. Since such a virtual keyboard can be used by multiple applications, it may be called a general purpose virtual keyboard. Also, third parties may create virtual keyboards with different features, for installation and use on handheld devices. For example, the Swype™ virtual keyboard, by Swype, Inc., allows a user to select a series of virtual keys without lifting his or her finger in between the keys, and a handheld device may allow its user to install and use the Swype™ keyboard instead of the standard virtual keyboard. Since such a virtual keyboard can also be used by multiple applications, it may also be called a general purpose virtual keyboard. In addition, it may be possible for a developer of a software application to create a new virtual keyboard specifically for that application. It may even be possible for that developer to create different virtual keyboards with different virtual keys for each different screen or electronic form in that application. These kinds of virtual keyboards may be referred to as application-specific virtual keyboards or form-specific virtual keyboards. However, there are many reasons for application developers to avoid application-specific virtual keyboards and form-specific virtual keyboards, including reasons pertaining to the time and costs associated with creating and maintaining such virtual keyboards. Consequently, applications for handheld devices typically use general purpose virtual keyboards provided by the OS.
Virtual keyboards make it possible for developers of handheld devices to produce devices with smaller sizes and fewer mechanical parts, relative to devices with a monitor and a separate conventional keyboard. However, filling out electronic forms on a handheld device with a virtual keyboard may be quite challenging. For example, some users prefer the feel of a physical keyboard with keys that depress. In addition, the size of the display screen may cause many challenges, because the handheld device may use a small screen which provides only a very limited amount of space or “real estate” to display information for the user.
For instance, if an electronic form for a handheld device includes much content, the user may need to zoom in on part of the electronic form to make the text or other UI objects in that part large enough to read and use, due to the small size of the screen. However, zooming in typically reduces the proportion of the electronic form that is visible on the screen, with the parts of the form that end up outside the bounds of the display being lost to sight. Moreover, these kinds of challenges are exacerbated when much of the screen is occupied by the virtual keyboard. In addition, the virtual keyboard may not provide any virtual keys that operate like the Tab key of a conventional keyboard to aid in navigating inside the electronic form. Consequently, the user may need to use additional zooming operations, as well as panning operations and selecting operations, to view and select input objects on those parts of the electronic form that have been zoomed off the screen.